In a typical multi-media system, a conventional personal computer is augmented with a full-motion video card to display full-motion video in a window on its display screen along with still images, such as text, outside the video window. Such a system offers enormous potential for educational applications and other interactive applications.
FIG. 1 generally illustrates a conventional personal computer display portion 10 on the right side of FIG. 1 and the pertinent components of a full-motion video card 12 on the left side of FIG. 1. This video card 12 is typically an add-on card which is inserted into the motherboard of the personal computer for augmenting its video processing capabilities.
The personal computer includes a raster-scan type display monitor 13 which may have on the order of 800.times. 600 pixels or more. A conventional VGA frame buffer 14 is generally bit-mapped to the display monitor 13 so that the storage locations in the frame buffer 14 have a one-to-one correspondence with the pixels in the display monitor 13.
The motion video card 12 receives raster scan analog or digital motion video information from a VCR, laser disk, CD ROM, television, or any other video source. This information is then converted into the proper digital format, filtered, and applied to a vertical and horizontal scaler 15. The vertical and horizontal scaler 15 is controlled by signals on a control line 16 to reduce (if desired) the effective size (width.times.height) of the incoming video image so that the motion video image can be displayed in a small window 17 on the display monitor 13. The original image (e.g., 640.times.480 pixels) is scaled down by dropping lines of pixels to reduce the vertical height and by dropping pixels along a horizontal line to reduce the horizontal width of the video image. For example, if the original video image were to be scaled down 50%, alternate lines of the video image would be deleted and alternate pixels would be deleted, thus reducing both the vertical and horizontal size by one half. Such horizontal scaling by 50% effectively reduces the peak bandwidth of the video signal by about half since every other video pixel is dropped.
To smooth abrupt contrast transitions which may be caused by the dropping of pixels (when horizontally scaling) or the dropping of entire lines of pixels (when vertically scaling), a low pass filter 20 is provided to effectively blur high frequency pixel transitions to a controlled degree. Given a raster stream of pixel data, it is easy to filter pixels adjacent to each other on a horizontal line because they appear in the raster stream back to back. However it is difficult to do filtering of pixels which are adjacent vertically. This is because the pixels are separated by an entire line of other pixels in the raster stream. The designer has two options for accessing previously scanned pixels. Either the previous line of pixel data can be read from the motion video memory buffer 22, which undesirably increases the bandwidth requirements of the memory buffer 22, or the pixel data for one line can be stored locally. The latter solution requires a line buffer 24.
The scaled and filtered video data outputted by scaler 15 is then temporarily stored in a motion video memory buffer 22, which may be a VRAM or DRAM.
A horizontal and vertical expander/interpolator 25 may be connected at the output of the memory buffer 22 to increase the pixel size of the video image beyond the pixel size of the image stored in memory buffer 22. As described with respect to filter 20 and line buffer 24, vertical filtering or vertical interpolation requires knowledge about pixels in an adjacent line of pixels. Hence, temporary storage of a previous line of pixels outputted by memory buffer 22 must be provided by a line buffer 27 connected to the expander/interpolator 25. Providing two line buffers 24 and 27 adds expense to the video circuitry and takes up valuable die area when the video circuitry is formed as an integrated circuit.
The video data from the frame buffer 14 and the full-motion video data outputted from the expander/interpolator 25 are then multiplexed by multiplexer 26 so that the full-motion video data is inserted at the proper time into the video data stream for display by the display monitor 13.
This resulting multiplexed video data stream is converted to analog by the D/A converter 28 and then applied to the display monitor 13 to display a full-motion video window 17 along with other data on the display monitor 13. Since the incoming video image was scaled down by half in each dimension, to 320.times.240 pixels, a full-motion video window 17 of 320.times.240 pixels is now present on the display monitor 13.
What is needed is a less expensive and more area efficient motion video circuit.